using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using Sinacor.Infra.UI.Common;
using Sinacor.UI.Bovespa.Ordens.Model.Enum;

namespace  Sinacor.UI.Bovespa.Ordens.Model
{
    public class ResumoFinanceiro : BaseModel
    {
        #region Fields

        /// <summary>
        /// Fields para a classe Resumo Finaceiro
        /// </summary>
        /// <user>asoares</user>
        private decimal volumeVendasVista;
        private decimal volumeComprasVista;
        private decimal volumeVendasOpcao;
        private decimal volumeComprasOpcao;
        private decimal volumeOperacoesTermo;

        /// Data:24/03/2008 18:46
        /// Autor:DMilanez.7Comm
        /// Obs: Alterado de forma a ser anulavel
        private decimal? valorCorretagemOriginal;

        private decimal valorTotalTaxaRegistro;
        private decimal valorTotalEmolumentos;
        private decimal valorTaxaANA;
        private decimal valorDescontoCorretagem;

        /// Data:24/03/2008 18:46
        /// Autor:DMilanez.7Comm
        /// Obs: Alterado de forma a ser anulavel
        private decimal? valorLiquidoNotaCorretagem;

        private decimal valorRepasseCorretagemCorrespondente;
        private decimal valorIRCorretagem;
        private decimal valorDescontoCorretagemCliente;
        private decimal valorTotalCorretagem;
        private decimal volumeNegocios;
        private decimal valorComissaoAssessorCliente;
        private decimal valorTaxaRegistroOperacoesDayTrade;
        private decimal valorTaxaRegistroOperacoesCarteiraPropria;
        private decimal valorTaxaRegistroOperacoesFinais;
        private decimal valorEmolumentosOperacoesDayTrade;
        private decimal valorEmolumentosOperacoesCarteiraPropria;
        private decimal valorEmolumentosOperacoesFinais;
        private decimal valorTaxaPTAN;
        private decimal valorTaxaIOF;
        private string codigoGrupoContabilCliente;
        private DateTime prazoLiquidacao;
        private decimal porcentagemDescontoCadastrado;

        /// Data:24/03/2008 18:46
        /// Autor:DMilanez.7Comm
        /// Obs: Alterado de forma a ser anulavel
        private decimal? porcentagemDescontoAplicado;

        private string codigoBolsaFaturamento;
        private int? codigoCliente;
        private DateTime dataNegocio;
        private DateTime dataMovimento;
        private TipoCliente tipoCliente;
        private decimal valorOperacoesDebentures;
        private bool correspondente;
        private decimal valorOperacoesFuturas;
        private decimal valorTaxaRegistroBovespa;
        private decimal valorTaxaRegistroCBLC;
        private decimal valorEmolumentosLiquidacaoBovespa;
        private decimal valorEmolumentosLiquidacaoCBLC;
        private decimal valorIRRF;
        private string tipoNegocio;
        private decimal valorTotalVendaMercadoFuturo;
        private decimal valorTotalCompraMercadoFuturo;
        private decimal valorOperacoesTitulosPublicos;
        private string indicadorISS;
        private decimal valorISS;
        private decimal valorCorretagemTotalOriginal;
        private string apelidoCliente;
        private bool contaInvestimento;
        private bool notaUnica;
        private decimal valorAjustePosicao;
        private decimal valorAjusteDia;
        private decimal valorAjusteDayTrade;
        private decimal valorRepasseCorrespondente;
        private bool ISSCorretagemReverso;
        private string nomeCliente;
        private IEnumerable _dadosNegocio;


        //Filtros para pesquisa

        private DateTime dataPregao;
        private bool somenteContaSelecionada;

        /// Data:19/03/2008 17:15
        /// Autor:DMilanez.7Comm
        /// Obs: Removido
        //private bool analitico;

        /// Data:18/03/2008 17:15
        /// Autor:DMilanez.7Comm
        /// Obs: Removido
        ////Tela que chamou a view Resumo Financeiro.
        //private Sistema chamada;

        #endregion

        #region Propriedades

        /// <summary>
        /// Propriedades da classe ResumoFinanceiro.
        /// </summary>
        /// <user>asoares</user>

        public decimal VolumeVendasVista
        {
            get
            {
                return volumeVendasVista;
            }
            set
            {
                volumeVendasVista = value; this.OnPropertyChanged("VolumeVendasVista");
            }
        }

        public decimal VolumeComprasVista
        {
            get
            {
                return volumeComprasVista;
            }
            set
            {
                volumeComprasVista = value; this.OnPropertyChanged("VolumeComprasVista");
            }
        }

        public decimal VolumeVendasOpcao
        {
            get
            {
                return volumeVendasOpcao;
            }
            set
            {
                volumeVendasOpcao = value; this.OnPropertyChanged("VolumeVendasOpcao");
            }
        }

        public decimal VolumeComprasOpcao
        {
            get
            {
                return volumeComprasOpcao;
            }
            set
            {
                volumeComprasOpcao = value; this.OnPropertyChanged("VolumeComprasOpcao");
            }
        }

        public decimal VolumeOperacoesTermo
        {
            get
            {
                return volumeOperacoesTermo;
            }
            set
            {
                volumeOperacoesTermo = value; this.OnPropertyChanged("VolumeOperacoesTermo");
            }
        }

        /// Data:24/03/2008 18:46
        /// Autor:DMilanez.7Comm
        /// Obs: Alterado de forma a ser anulavel
        public decimal? ValorCorretagemOriginal
        {
            get
            {
                return valorCorretagemOriginal;
            }
            set
            {
                valorCorretagemOriginal = value; this.OnPropertyChanged("ValorCorretagemOriginal");
            }
        }

        public decimal ValorTotalTaxaRegistro
        {
            get
            {
                return valorTotalTaxaRegistro;
            }
            set
            {
                valorTotalTaxaRegistro = value; this.OnPropertyChanged("ValorTotalTaxaRegistro");
            }
        }

        public decimal ValorTotalEmolumentos
        {
            get
            {
                return valorTotalEmolumentos;
            }
            set
            {
                valorTotalEmolumentos = value; this.OnPropertyChanged("ValorTotalEmolumentos");
            }
        }

        public decimal ValorTaxaANA
        {
            get
            {
                return valorTaxaANA;
            }
            set
            {
                valorTaxaANA = value; this.OnPropertyChanged("ValorTaxaANA");
            }
        }

        public decimal ValorDescontoCorretagem
        {
            get
            {
                return valorDescontoCorretagem;
            }
            set
            {
                valorDescontoCorretagem = value; this.OnPropertyChanged("ValorDescontoCorretagem");
            }
        }

        /// Data:24/03/2008 18:46
        /// Autor:DMilanez.7Comm
        /// Obs: Alterado de forma a ser anulavel
        public decimal? ValorLiquidoNotaCorretagem
        {
            get
            {
                return valorLiquidoNotaCorretagem;
            }
            set
            {
                valorLiquidoNotaCorretagem = value; this.OnPropertyChanged("ValorLiquidoNotaCorretagem");
            }
        }

        public decimal ValorRepasseCorretagemCorrespondente
        {
            get
            {
                return valorRepasseCorretagemCorrespondente;
            }
            set
            {
                valorRepasseCorretagemCorrespondente = value; this.OnPropertyChanged("ValorRepasseCorretagemCorrespondente");
            }
        }

        public decimal ValorIRCorretagem
        {
            get
            {
                return valorIRCorretagem;
            }
            set
            {
                valorIRCorretagem = value; this.OnPropertyChanged("ValorIRCorretagem");
            }
        }

        public decimal ValorDescontoCorretagemCliente
        {
            get
            {
                return valorDescontoCorretagemCliente;
            }
            set
            {
                valorDescontoCorretagemCliente = value; this.OnPropertyChanged("ValorDescontoCorretagemCliente");
            }
        }

        public decimal ValorTotalCorretagem
        {
            get
            {
                return valorTotalCorretagem;
            }
            set
            {
                valorTotalCorretagem = value; this.OnPropertyChanged("ValorTotalCorretagem");
            }
        }

        public decimal VolumeNegocios
        {
            get
            {
                return volumeNegocios;
            }
            set
            {
                volumeNegocios = value; this.OnPropertyChanged("VolumeNegocios");
            }
        }

        public decimal ValorComissaoAssessorCliente
        {
            get
            {
                return valorComissaoAssessorCliente;
            }
            set
            {
                valorComissaoAssessorCliente = value; this.OnPropertyChanged("ValorComissaoAssessorCliente");
            }
        }

        public decimal ValorTaxaRegistroOperacoesDayTrade
        {
            get
            {
                return valorTaxaRegistroOperacoesDayTrade;
            }
            set
            {
                valorTaxaRegistroOperacoesDayTrade = value; this.OnPropertyChanged("ValorTaxaRegistroOperacoesDayTrade");
            }
        }

        public decimal ValorTaxaRegistroOperacoesCarteiraPropria
        {
            get
            {
                return valorTaxaRegistroOperacoesCarteiraPropria;
            }
            set
            {
                valorTaxaRegistroOperacoesCarteiraPropria = value; this.OnPropertyChanged("ValorTaxaRegistroOperacoesCarteiraPropria");
            }
        }

        public decimal ValorTaxaRegistroOperacoesFinais
        {
            get
            {
                return valorTaxaRegistroOperacoesFinais;
            }
            set
            {
                valorTaxaRegistroOperacoesFinais = value; this.OnPropertyChanged("ValorTaxaRegistroOperacoesFinais");
            }
        }

        public decimal ValorEmolumentosOperacoesDayTrade
        {
            get
            {
                return valorEmolumentosOperacoesDayTrade;
            }
            set
            {
                valorEmolumentosOperacoesDayTrade = value; this.OnPropertyChanged("ValorEmolumentosOperacoesDayTrade");
            }
        }

        public decimal ValorEmolumentosOperacoesCarteiraPropria
        {
            get
            {
                return valorEmolumentosOperacoesCarteiraPropria;
            }
            set
            {
                valorEmolumentosOperacoesCarteiraPropria = value; this.OnPropertyChanged("ValorEmolumentosOperacoesCarteiraPropria");
            }
        }

        public decimal ValorEmolumentosOperacoesFinais
        {
            get
            {
                return valorEmolumentosOperacoesFinais;
            }
            set
            {
                valorEmolumentosOperacoesFinais = value; this.OnPropertyChanged("ValorEmolumentosOperacoesFinais");
            }
        }

        public decimal ValorTaxaPTAN
        {
            get
            {
                return valorTaxaPTAN;
            }
            set
            {
                valorTaxaPTAN = value; this.OnPropertyChanged("ValorTaxaPTAN");
            }
        }

        public decimal ValorTaxaIOF
        {
            get
            {
                return valorTaxaIOF;
            }
            set
            {
                valorTaxaIOF = value; this.OnPropertyChanged("ValorTaxaIOF");
            }
        }

        public string CodigoGrupoContabilCliente
        {
            get
            {
                return codigoGrupoContabilCliente;
            }
            set
            {
                codigoGrupoContabilCliente = value; this.OnPropertyChanged("CodigoGrupoContabilCliente");
            }
        }

        public DateTime PrazoLiquidacao
        {
            get
            {
                return prazoLiquidacao;
            }
            set
            {
                prazoLiquidacao = value; this.OnPropertyChanged("PrazoLiquidacao");
            }
        }

        public decimal PorcentagemDescontoCadastrado
        {
            get
            {
                return porcentagemDescontoCadastrado;
            }
            set
            {
                porcentagemDescontoCadastrado = value; this.OnPropertyChanged("PorcentagemDescontoCadastrado");
            }
        }

        /// Data:24/03/2008 18:46
        /// Autor:DMilanez.7Comm
        /// Obs: Alterado de forma a ser anulavel
        public decimal? PorcentagemDescontoAplicado
        {
            get
            {
                return porcentagemDescontoAplicado;
            }
            set
            {
                porcentagemDescontoAplicado = value; this.OnPropertyChanged("PorcentagemDescontoAplicado");
            }
        }

        public string CodigoBolsaFaturamento
        {
            get
            {
                return codigoBolsaFaturamento;
            }
            set
            {
                codigoBolsaFaturamento = value; this.OnPropertyChanged("CodigoBolsaFaturamento");
            }
        }

        public int? CodigoCliente
        {
            get
            {
                return codigoCliente;
            }
            set
            {
                codigoCliente = value; this.OnPropertyChanged("CodigoCliente");
            }
        }

        public DateTime DataNegocio
        {
            get
            {
                return dataNegocio;
            }
            set
            {
                dataNegocio = value; this.OnPropertyChanged("DataNegocio");
            }
        }

        public DateTime DataMovimento
        {
            get
            {
                return dataMovimento;
            }
            set
            {
                dataMovimento = value; this.OnPropertyChanged("DataMovimento");
            }
        }

        public TipoCliente TipoCliente
        {
            get
            {
                return tipoCliente;
            }
            set
            {
                tipoCliente = value; this.OnPropertyChanged("TipoCliente");
            }
        }

        public decimal ValorOperacoesDebentures
        {
            get
            {
                return valorOperacoesDebentures;
            }
            set
            {
                valorOperacoesDebentures = value; this.OnPropertyChanged("ValorOperacoesDebentures");
            }
        }

        public bool IsCorrespondente
        {
            get
            {
                return correspondente;
            }
            set
            {
                correspondente = value; this.OnPropertyChanged("Correspondente");
            }
        }

        public decimal ValorOperacoesFuturas
        {
            get
            {
                return valorOperacoesFuturas;
            }
            set
            {
                valorOperacoesFuturas = value; this.OnPropertyChanged("ValorOperacoesFuturas");
            }
        }

        public decimal ValorTaxaRegistroBovespa
        {
            get
            {
                return valorTaxaRegistroBovespa;
            }
            set
            {
                valorTaxaRegistroBovespa = value; this.OnPropertyChanged("ValorTaxaRegistroBovespa");
            }
        }

        public decimal ValorTaxaRegistroCBLC
        {
            get
            {
                return valorTaxaRegistroCBLC;
            }
            set
            {
                valorTaxaRegistroCBLC = value; this.OnPropertyChanged("ValorTaxaRegistroCBLC");
            }
        }

        public decimal ValorEmolumentosLiquidacaoBovespa
        {
            get
            {
                return valorEmolumentosLiquidacaoBovespa;
            }
            set
            {
                valorEmolumentosLiquidacaoBovespa = value; this.OnPropertyChanged("ValorEmolumentosLiquidacaoBovespa");
            }
        }

        public decimal ValorEmolumentosLiquidacaoCBLC
        {
            get
            {
                return valorEmolumentosLiquidacaoCBLC;
            }
            set
            {
                valorEmolumentosLiquidacaoCBLC = value; this.OnPropertyChanged("ValorEmolumentosLiquidacaoCBLC");
            }
        }

        public decimal ValorIRRF
        {
            get
            {
                return valorIRRF;
            }
            set
            {
                valorIRRF = value; this.OnPropertyChanged("ValorIRRF");
            }
        }

        public string TipoNegocio
        {
            get
            {
                return tipoNegocio;
            }
            set
            {
                tipoNegocio = value; this.OnPropertyChanged("TipoNegocio");
            }
        }

        public decimal ValorTotalVendaMercadoFuturo
        {
            get
            {
                return valorTotalVendaMercadoFuturo;
            }
            set
            {
                valorTotalVendaMercadoFuturo = value; this.OnPropertyChanged("ValorTotalVendaMercadoFuturo");
            }
        }

        public decimal ValorTotalCompraMercadoFuturo
        {
            get
            {
                return valorTotalCompraMercadoFuturo;
            }
            set
            {
                valorTotalCompraMercadoFuturo = value; this.OnPropertyChanged("ValorTotalCompraMercadoFuturo");
            }
        }

        public decimal ValorOperacoesTitulosPublicos
        {
            get
            {
                return valorOperacoesTitulosPublicos;
            }
            set
            {
                valorOperacoesTitulosPublicos = value; this.OnPropertyChanged("ValorOperacoesTitulosPublicos");
            }
        }

        public string IndicadorISS
        {
            get
            {
                return indicadorISS;
            }
            set
            {
                indicadorISS = value; this.OnPropertyChanged("IndicadorISS");
            }
        }

        public decimal ValorISS
        {
            get
            {
                return valorISS;
            }
            set
            {
                valorISS = value; this.OnPropertyChanged("ValorISS");
            }
        }

        public decimal ValorCorretagemTotalOriginal
        {
            get
            {
                return valorCorretagemTotalOriginal;
            }
            set
            {
                valorCorretagemTotalOriginal = value; this.OnPropertyChanged("ValorCorretagemTotalOriginal");
            }
        }

        public string ApelidoCliente
        {
            get
            {
                return apelidoCliente;
            }
            set
            {
                apelidoCliente = value; this.OnPropertyChanged("ApelidoCliente");
            }
        }

        public bool IsContaInvestimento
        {
            get
            {
                return contaInvestimento;
            }
            set
            {
                contaInvestimento = value; this.OnPropertyChanged("ContaInvestimento");
            }
        }

        public bool IsNotaUnica
        {
            get
            {
                return notaUnica;
            }
            set
            {
                notaUnica = value; this.OnPropertyChanged("NotaUnica");
            }
        }

        public decimal ValorAjustePosicao
        {
            get
            {
                return valorAjustePosicao;
            }
            set
            {
                valorAjustePosicao = value; this.OnPropertyChanged("ValorAjustePosicao");
            }
        }

        public decimal ValorAjusteDia
        {
            get
            {
                return valorAjusteDia;
            }
            set
            {
                valorAjusteDia = value; this.OnPropertyChanged("ValorAjusteDia");
            }
        }

        public decimal ValorAjusteDayTrade
        {
            get
            {
                return valorAjusteDayTrade;
            }
            set
            {
                valorAjusteDayTrade = value; this.OnPropertyChanged("ValorAjusteDayTrade");
            }
        }

        public decimal ValorRepasseCorrespondente
        {
            get
            {
                return valorRepasseCorrespondente;
            }
            set
            {
                valorRepasseCorrespondente = value; this.OnPropertyChanged("ValorRepasseCorrespondente");
            }
        }

        public bool IsISSCorretagemReverso
        {
            get
            {
                return ISSCorretagemReverso;
            }
            set
            {
                ISSCorretagemReverso = value; this.OnPropertyChanged("ISSCorretagemReverso");
            }
        }

        public string NomeCliente
        {
            get
            {
                return nomeCliente;
            }
            set
            {
                nomeCliente = value; this.OnPropertyChanged("NomeCliente");
            }
        }

        //Filtros para pesquisa

        //20080406 13:18 - Alterado - DMilanez.7Comm
        public DateTime DataPregao
        {
            get
            {
                return dataPregao;
            }
            set
            {
                dataPregao = value; this.OnPropertyChanged("DataPregao");
            }
        }

        public bool IsSomenteContaSelecionada
        {
            get
            {
                return somenteContaSelecionada;
            }
            set
            {
                somenteContaSelecionada = value; this.OnPropertyChanged("SomenteContaSelecionada");
            }
        }

        /// Data:19/03/2008 17:15
        /// Autor:DMilanez.7Comm
        /// Obs: Removido 
        //public bool IsAnalitico
        //{
        //    get
        //    {
        //        return analitico;
        //    }
        //    set
        //    {
        //        analitico = value;
        //    }
        //}

        //20080318 - dmilanez - removido
        ////Tela que chamou a view Resumo Financeiro.
        //public Sistema Chamada
        //{
        //    get
        //    {
        //        return chamada;
        //    }
        //    set
        //    {
        //        chamada = value;
        //    }
        //}

        public IEnumerable DadosNegocio
        {
            get { return _dadosNegocio; }
            set { _dadosNegocio = value; this.OnPropertyChanged("DadosNegocio"); }
        }

        #endregion
    }
}
